package com.harveyguo.nihonngo.service;

import com.harveyguo.nihonngo.model.BaseEntity;
import com.harveyguo.nihonngo.model.dto.UserCreateDto;
import com.harveyguo.nihonngo.model.dto.UserDto;

import java.util.List;

/**
 * 用户Service接口
 */
public interface UserService {

    List<UserDto> list();

    UserDto createdUser(UserCreateDto createDto);

    BaseEntity<UserDto> login(UserCreateDto createDto);

    /**
     * 根据ID查找用户
     */
    UserDto findById(String id);

    /**
     * 更新用户信息
     */
    UserDto updateUser(String id, UserCreateDto userDto);

    /**
     * 删除用户
     */
    void deleteUser(String id);

    /**
     * 根据拳击水平查找用户
     */
    List<UserDto> findByBoxingLevel(String boxingLevel);

    /**
     * 根据经验年数查找用户
     */
    List<UserDto> findByExperienceYears(Integer years);

    /**
     * 根据偏好风格查找用户
     */
    List<UserDto> findByPreferredStyle(String preferredStyle);

    /**
     * 查找附近的用户
     */
    List<UserDto> findNearbyUsers(Double latitude, Double longitude, Double radius);
}
